#include "../include/ulubatli.h"

Ulubatli::Ulubatli()
{
//    sprites[0][0]=IMG_Load("img/right1.png");
//    sprites[0][1]=IMG_Load("img/right2.png");
//    sprites[0][2]=IMG_Load("img/right3.png");
//
//    sprites[1][0]=IMG_Load("img/left1.png");
//    sprites[1][1]=IMG_Load("img/left2.png");
//    sprites[1][2]=IMG_Load("img/left3.png");
//
//    sprites[2][0]=IMG_Load("img/down1.png");
//    sprites[2][1]=IMG_Load("img/down2.png");
//    sprites[2][2]=IMG_Load("img/down3.png");
//
//    sprites[3][0]=IMG_Load("img/up1.png");
//    sprites[3][1]=IMG_Load("img/up2.png");
//    sprites[3][2]=IMG_Load("img/up3.png");

    sprites[0][0]=IMG_Load("img/up_1.png");
    sprites[0][1]=IMG_Load("img/up_1.png");
    sprites[0][2]=IMG_Load("img/up_1.png");

    sprites[1][0]=IMG_Load("img/up_1.png");
    sprites[1][1]=IMG_Load("img/up_1.png");
    sprites[1][2]=IMG_Load("img/up_1.png");

    sprites[2][0]=IMG_Load("img/up_1.png");
    sprites[2][1]=IMG_Load("img/up_1.png");
    sprites[2][2]=IMG_Load("img/up_1.png");

    sprites[3][0]=IMG_Load("img/up_1.png");
    sprites[3][1]=IMG_Load("img/up_1.png");
    sprites[3][2]=IMG_Load("img/up_1.png");

    setX(300);
    setY(450);

    setMevcutSprite(sprites[2][0]);
    orign.X = mevcutSprite->w / 2.0f;
    orign.Y = mevcutSprite->h / 2.0f;
}

Ulubatli::~Ulubatli()
{
    //dtor
}

SDL_Surface*
Ulubatli::spriteYukle(std::string yol)
{
    SDL_Surface *tut=NULL;
    SDL_Surface *optimize=NULL;

    tut =IMG_Load(yol.c_str());
    if (tut !=NULL)
        optimize = SDL_DisplayFormat(tut);

    SDL_FreeSurface(tut);

    return optimize;
}

void
Ulubatli::show(SDL_Surface *screen)
{
    SDL_Rect koord;
    koord.x = 100;
    koord.y = 100;
    SDL_BlitSurface(getMevcutSprite(),NULL,screen,&koord);
    SDL_Flip(screen);
}

void
Ulubatli::ciz(SDL_Surface *kaynak,SDL_Surface *hedef)
{
    SDL_Rect koord;
    koord.x = getX();
    koord.y = getY();
    SDL_BlitSurface(kaynak,NULL,hedef,&koord);
}

SDL_Surface*
Ulubatli::getSprite(int y,int x)
{
    return sprites[y][x];
}
void
Ulubatli::setMevcutSprite(SDL_Surface *sprite)
{
    mevcutSprite = sprite;
}

SDL_Surface*
Ulubatli::getMevcutSprite()
{
    return mevcutSprite;
}

void
Ulubatli::setX(int x)
{
    if (x>getSprite(0,0)->w && x<640-(getSprite(0,0)->w))
        koord.x = x;
}
void
Ulubatli::setY(int y)
{
    if (y>0 && y<480-(getSprite(2,0)->h))
        koord.y = y;
}

int
Ulubatli::getX()
{
    return koord.x;
}
int
Ulubatli::getY()
{
    return koord.y;
}

int
Ulubatli::getLeft()
{
    return koord.x;
}

int
Ulubatli::getRight()
{
    return (koord.x + mevcutSprite->w);
}

int
Ulubatli::getTop()
{
    return koord.y;
}

int
Ulubatli::getBottom()
{
    return (koord.y + mevcutSprite->h);
}

SDL_Rect
Ulubatli::getKoord()
{
    return koord;
}
